#ifndef _SYS_LOG_LEVEL_H_
#define _SYS_LOG_LEVEL_H_

#include "Enum.h"
#include "SysTypes.h"

#define LOG_LEVEL_VTABLE(self)   ((LogLevelVTable*)((FanObj*)self)->vtable)


extern Type*    LogLevel_classType;
extern VTable*  LogLevel_classVTable;


/* [sys::LogLevel] Attributes */
struct LogLevel
{
  Enum          super;
};


/* [sys::LogLevel] Virtual-table */
typedef struct LogLevelVTable
{
  EnumVTable    super;
} LogLevelVTable;


/* [sys::LogLevel] Methods and fields */
LogLevel*       LogLevel_debug(void);
LogLevel*       LogLevel_info(void);
LogLevel*       LogLevel_warn(void);
LogLevel*       LogLevel_err(void);
LogLevel*       LogLevel_silent(void);
List*           LogLevel_vals(void);
LogLevel*       LogLevel_fromStr_1(Str* name);
LogLevel*       LogLevel_fromStr(Str* name, Bool checked);


/* [sys::LogLevel] Type-system functions */
Type*           LogLevel_initType(void);
VTable*         LogLevel_initVTable(void);
void            LogLevel_initStatic(void);


#endif
